Telegram Group Search
Как интегрировать несколько внешних источников данных в Laravel с помощью DTO

💡 Сталкивались с задачей собрать отзывы с Google, Tripadvisor, Facebook и других платформ в одну модель Laravel? Статья показывает крутой способ, как это сделать грамотно и масштабируемо — с помощью Spatie Laravel Data и DTO.

⚙️ Как это работает?

Одна модель Review — с универсальными полями (автор, рейтинг, дата и т.д.).
DTO ReviewData — описывает, как выглядят «приведённые» данные.
Методы fromGoogle, fromTripadvisor и т.д. — превращают хаос внешних API в единый формат.
Match-case + firstOrCreate — красиво сохраняем данные, избегая дублирования.

📦 Используется пакет spatie/laravel-data, который делает работу с данными чистой и предсказуемой.

Подходит если:
у вас до 5 внешних источников;
нужно навести порядок и унифицировать структуру данных;
хочется типизированного и удобного кода.
📚 Полезно даже если у вас пока один источник — потом масштабировать будет проще.

🔗 Читайте подробности в статье
🚀 Как проект на Laravel набрал 1000+ звёзд на GitHub

👨‍💻 История Laravel Workflow от идеи до популярности
Разработчик Райан МакДэниел поделился историей своего open-source проекта Laravel Workflow. Он начал его как внутренний тул для визуализации бизнес-процессов, а спустя несколько месяцев — получил более 1000 звёзд на GitHub.

💡 В статье:
— Как появилась идея проекта
— Почему MVP важен даже для open-source
— Как он получил первый фидбек и начал собирать аудиторию
— Что сработало: Twitter, документация и честный storytelling
— Какие уроки он вынес для себя как разработчик и автор OSS

📌 Если вы тоже мечтаете запустить что-то своё — обязательно прочтите. Много практики и честных инсайтов.

🔗 Читаем
Thumbhash PHP — читаемые идентификаторы

Это библиотека для создания уникальных, читаемых человеком идентификаторов из файлов изображений. Он вдохновлен алгоритмом Thumbhash Эвана Уоллеса и обеспечивает реализацию алгоритма на PHP.

Thumbhash — это компактное представление плейсхолдера для изображения. Создавайте его в соответствии с вашими данными в то время как реальное изображение грузится для более плавной загрузки.

👉 Github

Библиотека пхпшника #инструменты
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
❤️ Лучшие материалы для разработчиков в одной подборке

Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.

Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!

1. Cтатистика по использованию языков программирования

2. Сто лет собеседований: почему наём в IT переусложнён

3. Видео, от которого сложно оторваться: эволюция языков программирования с 1958 по 2025

4. Бесплатная онлайн-платформа для практики написания SQL-запросов

5. Паттерны для работы с реальным временем в приложениях
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Фича дня: WeakMap в PHP
Иногда нужно привязать данные к объекту, но не мешать сборщику мусора его удалять.
Обычные массивы — не вариант. Но есть WeakMap.

💡 Что это даёт?
– Кэш на уровне объектов
– Без утечек памяти
– Удобно для библиотек и DI-контейнеров

📍 Где применимо:
– Lazy-loading
– Трассировка состояния
– Симпатичная альтернатива SplObjectStorage

🧪 Работает с PHP 8.0+

Библиотека пхпшника #буст
«Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)»

В жизни любого разработчика наступает момент, когда он роняет прод.

Сегодня мы услышим историю от разработчика из популярной edtech-компании о том, как это было у них, и как он оперативно исправлял ошибки, связанные с тонкостями PostgreSQL.

🔗 Хабр
🐘 Холивар: Laravel vs. Symfony

— Фреймворк для людей или фреймворк для тех, кто людей не любит?

Вопрос, который назрел очень давно:
Почему в одном проекте Laravel — как глоток свежего воздуха, а в другом — как магический лес, из которого не выйти без dd()?

Почему Symfony называют «тяжёлым», хотя он даёт контроль, структуру и возможность писать так, как надо, а не так, как задумал автор фреймворка?

💎 Laravel — всё просто, красиво, быстро взлетает.
Blade, Eloquent, php artisan make:всё, контейнер — сам всё подставит.
Но как только нужно отойти от «по учебнику» — магия превращается в ловушку.

🏗️ Symfony — строго, структурно, гибко.
Никакой лишней магии, максимум прозрачности.
Но порог входа выше, конфигов больше, документация — иногда как учебник по электротехнике.

🤔 А может, вообще пора без фреймворков?
Swoole, Slim, кастомный роутинг, да хоть на чистом PHP — и пусть весь мир подождёт.

🧨 Итог?
Laravel — будто пишешь на PHP, который притворяется JavaScript'ом.
Symfony — будто снова в универе, но за тобой наблюдает тимлид с галочкой.

💬 А ты на чьей стороне? Или уже третий год делаешь всё на Yii и просто смотришь, как другие дерутся?

Библиотека пхпшника #междусобойчик
💻 Подборка новостей по PHP за неделю:​

🔹 JetBrains PHPverse 2025: 17 июня состоится бесплатное онлайн-мероприятие, посвящённое 30-летию PHP. В программе — выступления от Taylor Otwell, Nicolas Grekas, Kevin Dunglas и других лидеров сообщества .

🔹 PhpStorm 2025.2 EAP: открыт ранний доступ к следующей версии IDE с поддержкой PHP 8.4, улучшениями для PHPUnit 11 и фреймворка Pest .

🔹 Laravel 12.14: добавлен метод Arr::from() для преобразования различных типов в массивы, метод currentlyResolving() в контейнере и новые методы «except» для контекста .

🔹 Symfony 7.3: внесены улучшения в YAML-компонент, включая принудительное заключение строк в кавычки, компактные вложенные карты и вывод пустых записей

Библиотека пхпшника #свежак
Мы хотим удалить все «(» и «)» из $string. Что из этого подойдет?
Мы хотим удалить все «(» и «)» из `$string`. Что из этого подойдет?
Anonymous Quiz
14%
a, b, d
32%
a, d
20%
c, d
7%
b, c, d
26%
a, b
1%
b, c
⌨️ Топ-вакансий по PHP за неделю

Backend Developer / Бэкенд-разработчик — от 250 000 ₽, удалёнка (Москва)

Senior PHP, Laravel — от 200 000 до 350 000 ₽, удалёнка (Москва)

Senior PHP Developer — 250 000 —‍ 500 000 ₽, удалёнка (Москва)

Junior Backend-разработчик PHP (MODX) — от 50 000 до 300 000 ₽, Гибрид (Нижний Новгород)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
🎮 Код из книги: Интеграция Elasticsearch с Logstash для сбора логов

Проблема: сбор и анализ логов — важная часть мониторинга системы. Без автоматизации этот процесс может быть трудоемким и подверженным ошибкам. Проблемой является необходимость агрегации и индексирования больших объемов логов с различных источников.

Решение: в книге Elasticsearch in Action (Second Edition) автор объясняет, как настроить интеграцию Elasticsearch с Logstash для автоматического сбора и обработки логов.

Пример конфигурации Logstash для отправки логов в Elasticsearch:
input {
file {
path => "/var/log/syslog"
start_position => "beginning"
}
}

filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{WORD:loglevel} %{GREEDYDATA:message}" }
}
}

output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "syslog-%{+YYYY.MM.dd}"
}
}


Преимущества:


— Автоматизация сбора логов и их индексация.
— Упрощает мониторинг и анализ больших объемов данных.
— Позволяет быстро искать и фильтровать логи с помощью Elasticsearch.

Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 Почему на собеседованиях в топовые компании проваливаются даже опытные разработчики

Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.

Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».

Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».

🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей

После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.

👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
Repository Pattern в PHP

Сегодня мы узнаем про шаблон проектирования «Репозиторий» («Repository Pattern»), его особенности и сферы применения, а также сравнение его с другими подходами к доступу к данным, такими как ORM (Object-Relational Mapping).

Шаблон «Репозиторий» представляет собой абстракцию источника данных, который ведет себя как коллекция, содержащая объекты доменной модели. Эта абстракция представлена интерфейсом Repository и обычно содержит методы для получения, сохранения и удаления объектов.

Репозиторий считается единственным источником правды для извлечения и сохранения объектов доменной модели.

Чем Репозиторий НЕ является?

🏭 Не является фабрикой, так как не создает объекты, а только содержит их.
🗄️ Не ORM, не зависит от способа получения объектов (через базу данных, файлы и т. д.).

🖋️ Различия между Репозиториями для Чтения и Записи:

✍️ Репозитории для записи используются для сохранения, обновления и удаления объектов.
📖 Репозитории для чтения предоставляют контекстно-специфичные модели объектов для целей чтения.

Другие аспекты включают в себя соглашения по именованию методов (например, get vs. find), использование ViewModel для представления объектов в различных контекстах, а также возможность замены технической реализации репозитория, например, для доступа к данным через внешние сервисы.

🤔 Когда НЕ использовать Репозиторий?

🚫 Для небольших CRUD-приложений.
🚫 Для создания больших отчетов.

Репозиторий представляет собой полезный инструмент для управления доступом к данным в приложениях, особенно в больших и сложных системах, где требуется абстрагирование слоя доступа к данным от остальных компонентов приложения.

👉 Читать полностью
static-php-cli — сборка в бинарный файл

Инструмент для сборки PHP-приложений в один бинарный файл без дополнительных зависимостей.

Он имеет множество фич:

👜 Сборка однофайлового исполняемого файла php, без каких-либо зависимостей
🍔 Сборка самораспаковывающегося исполняемого файла phpmicro (склеивание бинарного и исходного кода php в один файл)
💊 Автоматическая проверка окружения сборки (модуль Doctor)
Поддержка Linux, macOS, FreeBSD, Windows
🔧 Настраиваемые исправления исходного кода
📚 Управление зависимостями сборки
📦 Предоставление собственного автономного исполняемого файла spc (собранного spc и box)
🔥 Поддержка многих популярных расширений
💾 Интеграция UPX (значительно уменьшает размер бинарных файлов)

🔗 Github

Библиотека пхпшника #инструменты
2025/06/14 12:21:52
Back to Top
HTML Embed Code: